import { IPSAjaxControl } from '../ipsajax-control';
import { IPSControl } from '../ipscontrol';
import { IPSControlContainer } from '../ipscontrol-container';
import { IPSUserControl } from '../ipsuser-control';
import { IPSLayoutItem } from '../layout/ipslayout-item';
import { IPSLayoutPos } from '../layout/ipslayout-pos';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysImage } from '../../res/ipssys-image';
import { IPSSysUniRes } from '../../security/ipssys-uni-res';
import { IPSUIActionGroup } from '../../view/ipsuiaction-group';

/**
 *
 * 子接口类型识别属性[portletType]
 * 继承父接口类型值[PORTLET]
 * @export
 * @interface IPSDBPortletPart
 */
export interface IPSDBPortletPart
  extends IPSControl,
    IPSAjaxControl,
    IPSControlContainer,
    IPSUserControl,
    IPSLayoutItem {
  /**
   * 界面行为组展开模式
   * @description 值模式 [界面行为组展开模式] {ITEM：按项展开（默认）、 ITEMS：按分组展开 }
   * @type {( string | 'ITEM' | 'ITEMS')}
   */
  actionGroupExtractMode: string | 'ITEM' | 'ITEMS';

  /**
   * 内容部件
   *
   * @type {IPSControl}
   */
  getContentPSControl(): IPSControl | null;

  /**
   * 动态样式表
   * @type {string}
   */
  dynaClass: string;

  /**
   * 部件位置
   *
   * @type {IPSLayoutPos}
   */
  getPSLayoutPos(): IPSLayoutPos | null;

  /**
   * 系统图片
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 系统统一资源
   *
   * @type {IPSSysUniRes}
   */
  getPSSysUniRes(): IPSSysUniRes | null;

  /**
   * 界面行为组对象
   *
   * @type {IPSUIActionGroup}
   */
  getPSUIActionGroup(): IPSUIActionGroup | null;

  /**
   * 门户部件类型
   * @description 值模式 [云平台门户部件类型（全部）] {LIST：实体列表、 CHART：实体图表、 VIEW：系统视图、 HTML：网页部件、 TOOLBAR：工具栏、 ACTIONBAR：操作栏、 CUSTOM：自定义、 APPMENU：快捷菜单栏、 CONTAINER：布局容器、 RAWITEM：直接内容 }
   * @type {( string | 'LIST' | 'CHART' | 'VIEW' | 'HTML' | 'TOOLBAR' | 'ACTIONBAR' | 'CUSTOM' | 'APPMENU' | 'CONTAINER' | 'RAWITEM')}
   */
  portletType:
    | string
    | 'LIST'
    | 'CHART'
    | 'VIEW'
    | 'HTML'
    | 'TOOLBAR'
    | 'ACTIONBAR'
    | 'CUSTOM'
    | 'APPMENU'
    | 'CONTAINER'
    | 'RAWITEM';

  /**
   * 抬头
   * @type {string}
   */
  title: string;

  /**
   * 标题栏关闭模式
   * @description 值模式 [分组标题栏关闭模式] {0：无关闭、 1：启用关闭（默认打开）、 2：启用关闭（默认关闭） }
   * @type {( number | 0 | 1 | 2)}
   * @default 0
   */
  titleBarCloseMode: number | 0 | 1 | 2;

  /**
   * 抬头语言资源
   *
   * @type {IPSLanguageRes}
   */
  getTitlePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 显式标题栏
   * @type {boolean}
   */
  showTitleBar: boolean;
}
